with v_string; use v_string;
package authentication is
    MaxUsers : constant Integer := 100;

    type user is private;
    type userArray is array(1..MaxUsers) of user;

    procedure createUser (username : in vstring; password : in vstring);
    procedure unauthenticate;
    procedure backupUsers;

    function getCurrentID return Integer;
    function getIDFromUsername(username : vstring) return Integer;
    function authenticate (userName : vstring; password : in vstring) return Boolean;
    function deleteUser (IDToDelete : Integer) return Boolean;

    max_users_error : exception;
    user_not_found : exception;
    create_user_error : exception;


private
    type user is 
	record
	    ID : Integer;
	    Username : vstring;
	    password : vstring;
	end record;

end authentication;
